"use strict";
// DataHelper类 - 负责 localStorage 操作
var DataHelper = /** @class */ (function () {
    // 一、构造函数 --作用；为对象添加各种属性
    function DataHelper(dataKey, primaryKey) {
        this.dataKey = dataKey;
        this.primaryKey = primaryKey;
    }
    //   1.读取全部数据，返回数组(如果没有读到数据 就返回 空数组)
    DataHelper.prototype.readData = function () {
        //   1.读取 本地数据（根据dataKey读取）
        var strData = localStorage.getItem(this.dataKey);
        // 2.将 读取的json数组字符串转成数组对象
        var arrData = [];
        if (strData != null) {
            arrData = JSON.parse(strData);
        }
        // 3.返回 数组对象
        return arrData;
    };
    //   2.存入本地数据
    DataHelper.prototype.saveData = function (arrData) {
        // 1.将数组转成 json字符串
        var srt = JSON.stringify(arrData);
        // 2.将字符串 保存到 本地localStorage中
        localStorage.setItem(this.dataKey, str);
    };
    //   3.新增数据
    DataHelper.prototype.addData = function (conStr) {
        //   1.读取本地现有数据
        var arr = this.readData();
        // 2.创建一个评论对象，并设置评论内容属性
        var obj = {
            content: conStr,
        };
        // 3.1自动生成主键值(id值)
        var newId = arr.length > 0 ? arr[arr.length - 1][this.primaryKey] + 1 : 1;
        // 3.2将id值通过中括号访问法添加到对象
        obj[this.primaryKey] = newId;
        // 4.将添加了主键值的对象追加到数组
        arr.push(obj);
        // 5.将数组保存到localStrotage中
        this.saveData(arr);
        // 6.返回id
        return newId;
    };
    //   4.删除数据
    DataHelper.prototype.removeDataById = function (id) {
        var _this = this;
        //   读取本地数组
        var arr = this.readData();
        // 查找要删除评论对象的下标，并保存到本地
        var index = arr.findIndex(function (ele) {
            return ele[_this.primaryKey] == id;
        });
        // 如果下标大于-1，则删除数组中该下标元素对象，并返回true
        if (index > -1) {
            arr.splice(index, 1);
            //   保存到本地
            this.saveData(arr);
            return true;
        }
        return false; //否则 返回false
    };
    return DataHelper;
}());
